package com.zabra.zl.ui.recharge.contract;

import com.zabra.zl.base.BaseView;
import com.zabra.zl.data.RechargeOffLineBean;
import com.zabra.zl.data.RechargeOnLineBean;
import com.zabra.zl.data.SimpleBean;
import com.zabra.zl.data.WechatBean;

import okhttp3.RequestBody;
import retrofit2.Call;

public interface RechargeContract {
    interface Model {
        Call<RechargeOnLineBean> getOnLineData(RequestBody body);

        Call<RechargeOffLineBean> getOffLineData(RequestBody body);

        Call<SimpleBean> getOffLineSubmitData(RequestBody body);

        Call<WechatBean> getWeChatData(RequestBody body);

        Call<WechatBean> getAlipayData(RequestBody body);

        Call<SimpleBean> getSubmitWeChatData(RequestBody body);

        Call<SimpleBean> getSubmitAlipayData(RequestBody body);
    }

    interface View extends BaseView {
        @Override
        void showLoading();

        @Override
        void hideLoading();

        @Override
        void onError(Throwable throwable);

        void onSuccess(RechargeOnLineBean bean);

        void onSuccess(RechargeOffLineBean bean);

        void onSuccess(SimpleBean bean);

        void onSuccess(WechatBean bean);
    }

    interface Presenter {
        void getOnLineData(RequestBody body);

        void getOffLineData(RequestBody body);

        void getOffLineSubmitData(RequestBody body);

        void getWeChatData(RequestBody body);

        void getSubmitWeChatData(RequestBody body);

        void getAlipayData(RequestBody body);

        void getSubmitAlipayData(RequestBody body);
    }
}
